perm filename IMPTLK[SS,SYS] blob
sn#345686 filedate 1983-05-20 generic text, type T, neo UTF8
TITLE ITEST
IMP←←400
; Cono Bits . . .
test←←100000 ; Enter test mode (does anal-cranial inversion)
strin←←040000 ; Start input, sets stop, clears input end
i32←←020000 ; Set input byte size to 32b if IDPIEN set
o32←←010000 ; Set output byte size to 32b if ODPIEN set
clrst←←004000 ; Clear stop after input bit
clrwt←←002000 ; Clear waiting to input bit
strout←←000200 ; Start output
fino←←000100 ; Finish output (last bit has been sent)
iepien←←000040 ; Enable change of input end interrupt channel
idpien←←000020 ; Enable change of input byte size and input done interrupt channel
odpien←←000010 ; Enable change of output byte size and output done interrupt channel
; Coni bits . . .
test←←100000 ; Enter test mode (does anal-cranial inversion)
imperr←←040000 ; Imp error
idone←←020000 ; Input done
iend←←010000 ; Input end.
odone←←004000 ; Output done
pln←←20
p←←17
array pdl[pln]
integer savep,cnt,savcni
START: calli
movei 1,spwst
movem 1,spwdsp
; put in initialize code here
setzm data
move 1,[xwd 400004,spw]
call 1,[sixbit /SPCWGO/]
jrst main
spw: jrst @spwdsp
spwdsp: 0
zwait: movei 1,zdsp
jrst dsmg
zdsp: move p,savep
move 1,@(p)
skipe (1)
jrst dsm
jrst cpopj1
nzwait: movei 1,ndsp
jrst dsmg
ndsp: move p,savep
move 1,@(p)
skipn (1)
jrst dsm
jrst cpopj1
fwait: movei 1,fdsp
jrst dsmg
fdsp: move p,savep
move 1,@(p)
conso imp,(1)
jrst dsm
jrst cpopj1
bwait: movei 1,100
movem 1,cnt
movei 1,bdsp
dsmg: movem 1,spwdsp
movem p,savep
jrst dsm
bdsp: move p,savep
move 1,@(p)
conso imp,(1)
jrst count
aos (p)
cpopj1: aos (p)
popj p,
count: sosle cnt
dsm: call [sixbit /DISMIS/]
coni imp,savcni
aos (p)
move 1,@(p)
sos (1)
spwst: move p,[iowd pln,pdl]
movei 1,3
movem 1,nopcnt#
noplop: cono imp,strout!o32!odpien
datao imp,[4B7]
pushj p,fwait
odone
cono imp,fino
pushj p,fwait
odone
sosle nopcnt
jrst noplop
pushj p,nzwait
data
cono imp,strout!o32!odpien
datao imp,[13B15]
pushj p,fwait
odone
oloop: blko imp,blkop
jrst done
pushj p,fwait
odone
jrst oloop
done: pushj p,fwait
odone
cono imp,fino
pushj p,fwait
odone
setzm data
jrst spwst
integer blkop
array messag[300]
main: move 1,[point 8,messag]
setz 2,
outstr [asciz /Message: /]
mloop: inchwl 3
ori 3,200
idpb 3,1
addi 2,1
caie 3,212
jrst mloop
trne 2,3
addi 2,4
lsh 2,-2
movns 2
hrli 2,messag-1
movsm 2,blkop
setom data#
sloop: movei 1,1
call 1,[sixbit /SLEEP/]
skipe data
jrst sloop
jrst main
end start